/**
 * Copyright © 2018 Union Mobile Financial Technology Co.Ltd
 * All Rights Reserved
 * @Description: 平台注册dto
 * @author lile 
 * @date 2018年1月24日 下午5:33:10
 *
 */
package com.umpay.dto.memberMgr.req;

import javax.validation.constraints.NotNull;

import org.hibernate.validator.constraints.NotEmpty;

import com.umpay.annotation.Pattern;
import com.umpay.verify.Verifiable;

/**
 ***********************************************************
 * @ClassName: MerRegisterReq
 * @Description: 平台注册dto
 * @author lile
 * @date 2018年1月24日 下午5:33:10
 * @version 1.0
 *
 *          Modification History: Date Author Version Description
 *          ---------------------------------------------------------*
 *          2018年1月24日 lile v1.0.0 修改原因
 ************************************************************
 */
public class MerRegisterReq implements Verifiable {
	@NotEmpty
	@Pattern
	private String trace;
	
	@NotEmpty
	@Pattern
	private String instId;
	
	/**
	 * @Fields merId : 商户号
	 */
	@NotEmpty
	@Pattern
	private String merId;

	/**
	 * @Fields merName : 商户名称
	 */
	@NotEmpty
	@Pattern
	private String merName;

	/**
	 * @Fields shortName : 商户简称
	 */
	@NotEmpty
	@Pattern
	private String shortName;

	/**
	 * @Fields enterPriseName : 企业简称
	 */
	@NotEmpty
	@Pattern
	private String enterPriseName;
	
	/**
	 * @Fields licenseNo : 营业执照号(全国统一信用代码)
	 */
	@NotEmpty
	@Pattern
	private String licenseNo;

	/**
	 * @Fields organizationId : 组织机构代码证号
	 */
//	@NotEmpty
	@Pattern
	private String organizationId;
	
	/**
	 * @Fields taxCertificate : 税务登记证号
	 */
//	@NotEmpty
	@Pattern
	private String taxCertificate;

	/**
	 * @Fields lawyerName : 法人姓名
	 */
	@NotEmpty
	@Pattern
	private String lawyerName;

	/**
	 * @Fields lawyerIdCode : 法人证件号
	 */
	@NotEmpty
	@Pattern
	private String lawyerIdCode;

	/**
	 * @Fields industryId : 所属行业编号
	 */
	@NotEmpty
	@Pattern
	private String industryId;

	/**
	 * @Fields businessOwner : 业务负责人
	 */
	@NotEmpty
	@Pattern
	private String businessOwner;

	/**
	 * @Fields conMobileId : 联系人手机号
	 */
	@NotEmpty
	@Pattern
	private String conMobileId;

	/**
	 * @Fields email : 电子邮件地址
	 */
	@NotEmpty
	@Pattern
	private String email;

	/**
	 * @Fields bankAccount : 对公银行账号
	 */
	@NotEmpty
	@Pattern
	private String bankAccount;
	
	@NotEmpty
	@Pattern
	private String bankName;
	
	@NotEmpty
	@Pattern
	private String bankProvName;
	
	@NotEmpty
	@Pattern
	private String bankAreName;
	
	@NotEmpty
	@Pattern
	private String bankBranchName;


	/**
	 * @Fields merCert : 商户私钥
	 */
//	@NotEmpty
//	@Pattern
//	private String merCert;

	/**
	 * @Fields bProductId : 业务产品号
	 */
//	@NotEmpty
	@Pattern
	private String bProductId;

	/**
	 * @Fields openAccountPermitsPath :开户许可证图片NAS存储路径
	 */
	@NotEmpty
	@Pattern
	private String openAccountPermitsPath;

	/**
	 * @Fields licensePath : 营业执照Nas图片存储路径
	 */
	@NotEmpty
	@Pattern
	private String licensePath;

	/**
	 * @Fields LawyerPath : 法人身份证图片Nas图片存储路径
	 */
	@NotEmpty
	@Pattern
	private String lawyerPath;

	/**
	 * @Fields licenseType : 是否三证合一 1-是 2-否
	 */
	@NotNull
	@Pattern
	private Short licenseType;
	
	@NotNull
	@Pattern
	private String rpid;
	
	/**
	* @Fields accesType : 接入类型 1-托管 2-银行存管
	*/
	@NotNull
	@Pattern
	private Short accessType;
	
	/**
	* @Fields accesName : 接入名称
	*/
	@NotEmpty
	@Pattern
	private String accessName;
	
	/**
	* @Fields modUser : 修改人
	*/
	private String modUser;
	
	/**
	* @Fields instUser : 录入人
	*/
	private String instUser;
	
	/**
	* @Fields certName : 证书姓名
	*/
//	@NotEmpty
//	@Pattern
//	private String certName;
	
	/**
	* @Fields lawyerIdType : 法人证件类型
	*/
	@NotNull
	@Pattern
	private Short lawyerIdType;
	
	/**
	* @Fields notifyUrl : 商户通知地址
	*/
	@NotEmpty
	@Pattern
	private String notifyUrl;
	
	/**
	* @Fields state : 状态 2-开通 4-注销
	*/
	@NotNull
	@Pattern
	private Short state;
	
	/**
	* @Fields binBankId : 银行代码
	*/
	@Pattern
	private String binBankId;
	
	/**
	* @Fields bankCode : 银行英文简码
	*/
	@NotEmpty
	@Pattern
	private String bankCode;
	
	/**
	 * 存管行会员号用户号
	 */
	@Pattern
	private String depBankUserId;
	
	/**
	 * 存管行会员账户号
	 */
	@Pattern
	private String depBankAccount;
	
	/**
	 * 针对存管行虚拟账户号对应内部的userId
	 */
	@Pattern
	private String virtualInnerUserId;
	
	/**
	 * 存管行测商户号
	 */
	@Pattern
	private String depBankMerId;
	
	
	public String getBinBankId() {
		return binBankId;
	}

	public void setBinBankId(String binBankId) {
		this.binBankId = binBankId;
	}

	public String getBankCode() {
		return bankCode;
	}

	public void setBankCode(String bankCode) {
		this.bankCode = bankCode;
	}

	public Short getState() {
		return state;
	}

	public void setState(Short state) {
		this.state = state;
	}

	public String getNotifyUrl() {
		return notifyUrl;
	}

	public void setNotifyUrl(String notifyUrl) {
		this.notifyUrl = notifyUrl;
	}

	public Short getLawyerIdType() {
		return lawyerIdType;
	}

	public void setLawyerIdType(Short lawyerIdType) {
		this.lawyerIdType = lawyerIdType;
	}

//	public String getCertName() {
//		return certName;
//	}
//
//	public void setCertName(String certName) {
//		this.certName = certName;
//	}

	public String getModUser() {
		return modUser;
	}

	public void setModUser(String modUser) {
		this.modUser = modUser;
	}

	public String getInstUser() {
		return instUser;
	}

	public void setInstUser(String instUser) {
		this.instUser = instUser;
	}
	
	public String getRpid() {
		return rpid;
	}

	public void setRpid(String rpid) {
		this.rpid = rpid;
	}

	public String getMerId() {
		return merId;
	}

	public void setMerId(String merId) {
		this.merId = merId;
	}

	public String getMerName() {
		return merName;
	}

	public void setMerName(String merName) {
		this.merName = merName;
	}

	public String getShortName() {
		return shortName;
	}

	public void setShortName(String shortName) {
		this.shortName = shortName;
	}

	public String getEnterPriseName() {
		return enterPriseName;
	}

	public void setEnterPriseName(String enterPriseName) {
		this.enterPriseName = enterPriseName;
	}

	public String getOrganizationId() {
		return organizationId;
	}

	public void setOrganizationId(String organizationId) {
		this.organizationId = organizationId;
	}

	public String getLawyerName() {
		return lawyerName;
	}

	public void setLawyerName(String lawyerName) {
		this.lawyerName = lawyerName;
	}

	public String getLawyerIdCode() {
		return lawyerIdCode;
	}

	public void setLawyerIdCode(String lawyerIdCode) {
		this.lawyerIdCode = lawyerIdCode;
	}

	public String getIndustryId() {
		return industryId;
	}

	public void setIndustryId(String industryId) {
		this.industryId = industryId;
	}

	public String getBusinessOwner() {
		return businessOwner;
	}

	public void setBusinessOwner(String businessOwner) {
		this.businessOwner = businessOwner;
	}

	public String getConMobileId() {
		return conMobileId;
	}

	public void setConMobileId(String conMobileId) {
		this.conMobileId = conMobileId;
	}

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	public String getBankAccount() {
		return bankAccount;
	}

	public void setBankAccount(String bankAccount) {
		this.bankAccount = bankAccount;
	}
	
	

//	public String getMerCert() {
//		return merCert;
//	}
//
//	public void setMerCert(String merCert) {
//		this.merCert = merCert;
//	}

	public String getbProductId() {
		return bProductId;
	}

	public void setbProductId(String bProductId) {
		this.bProductId = bProductId;
	}

	

	public String getLicensePath() {
		return licensePath;
	}

	public void setLicensePath(String licensePath) {
		this.licensePath = licensePath;
	}

	

	public String getLawyerPath() {
		return lawyerPath;
	}

	public void setLawyerPath(String lawyerPath) {
		this.lawyerPath = lawyerPath;
	}

	public Short getLicenseType() {
		return licenseType;
	}

	public void setLicenseType(Short licenseType) {
		this.licenseType = licenseType;
	}
	
	public String getLicenseNo() {
		return licenseNo;
	}

	public void setLicenseNo(String licenseNo) {
		this.licenseNo = licenseNo;
	}

	public String getTaxCertificate() {
		return taxCertificate;
	}

	public void setTaxCertificate(String taxCertificate) {
		this.taxCertificate = taxCertificate;
	}

	public String getBankName() {
		return bankName;
	}

	public void setBankName(String bankeName) {
		this.bankName = bankeName;
	}

	public String getBankProvName() {
		return bankProvName;
	}

	public void setBankProvName(String bankProvName) {
		this.bankProvName = bankProvName;
	}

	public String getBankAreName() {
		return bankAreName;
	}

	public void setBankAreName(String bankAreName) {
		this.bankAreName = bankAreName;
	}

	public String getBankBranchName() {
		return bankBranchName;
	}

	public void setBankBranchName(String bankBranchName) {
		this.bankBranchName = bankBranchName;
	}
	
	

	public String getTrace() {
		return trace;
	}

	public void setTrace(String trace) {
		this.trace = trace;
	}

	public String getInstId() {
		return instId;
	}

	public void setInstId(String instId) {
		this.instId = instId;
	}

	public String getOpenAccountPermitsPath() {
		return openAccountPermitsPath;
	}

	public void setOpenAccountPermitsPath(String openAccountPermitsPath) {
		this.openAccountPermitsPath = openAccountPermitsPath;
	}

	public Short getAccessType() {
		return accessType;
	}

	public void setAccessType(Short accessType) {
		this.accessType = accessType;
	}

	public String getAccessName() {
		return accessName;
	}

	public void setAccessName(String accessName) {
		this.accessName = accessName;
	}
	
	public String getDepBankUserId() {
		return depBankUserId;
	}

	public void setDepBankUserId(String depBankUserId) {
		this.depBankUserId = depBankUserId;
	}

	public String getDepBankAccount() {
		return depBankAccount;
	}

	public void setDepBankAccount(String depBankAccount) {
		this.depBankAccount = depBankAccount;
	}

	public String getVirtualInnerUserId() {
		return virtualInnerUserId;
	}

	public void setVirtualInnerUserId(String virtualInnerUserId) {
		this.virtualInnerUserId = virtualInnerUserId;
	}

	public String getDepBankMerId() {
		return depBankMerId;
	}

	public void setDepBankMerId(String depBankMerId) {
		this.depBankMerId = depBankMerId;
	}

	@Override
	public String toString() {
		StringBuilder builder = new StringBuilder();
		builder.append("MerRegisterReq [trace=");
		builder.append(trace);
		builder.append(", instId=");
		builder.append(instId);
		builder.append(", merId=");
		builder.append(merId);
		builder.append(", merName=");
		builder.append(merName);
		builder.append(", shortName=");
		builder.append(shortName);
		builder.append(", enterPriseName=");
		builder.append(enterPriseName);
		builder.append(", licenseNo=");
		builder.append(licenseNo);
		builder.append(", organizationId=");
		builder.append(organizationId);
		builder.append(", taxCertificate=");
		builder.append(taxCertificate);
		builder.append(", lawyerName=");
		builder.append(lawyerName);
		builder.append(", lawyerIdCode=");
		builder.append(lawyerIdCode);
		builder.append(", industryId=");
		builder.append(industryId);
		builder.append(", businessOwner=");
		builder.append(businessOwner);
		builder.append(", conMobileId=");
		builder.append(conMobileId);
		builder.append(", email=");
		builder.append(email);
		builder.append(", bankAccount=");
		builder.append(bankAccount);
		builder.append(", bankName=");
		builder.append(bankName);
		builder.append(", bankProvName=");
		builder.append(bankProvName);
		builder.append(", bankAreName=");
		builder.append(bankAreName);
		builder.append(", bankBranchName=");
		builder.append(bankBranchName);
		builder.append(", bProductId=");
		builder.append(bProductId);
		builder.append(", openAccountPermitsPath=");
		builder.append(openAccountPermitsPath);
		builder.append(", licensePath=");
		builder.append(licensePath);
		builder.append(", lawyerPath=");
		builder.append(lawyerPath);
		builder.append(", licenseType=");
		builder.append(licenseType);
		builder.append(", rpid=");
		builder.append(rpid);
		builder.append(", accessType=");
		builder.append(accessType);
		builder.append(", accessName=");
		builder.append(accessName);
		builder.append(", modUser=");
		builder.append(modUser);
		builder.append(", instUser=");
		builder.append(instUser);
		builder.append(", lawyerIdType=");
		builder.append(lawyerIdType);
		builder.append(", notifyUrl=");
		builder.append(notifyUrl);
		builder.append(", state=");
		builder.append(state);
		builder.append(", binBankId=");
		builder.append(binBankId);
		builder.append(", bankCode=");
		builder.append(bankCode);
		builder.append(", depBankUserId=");
		builder.append(depBankUserId);
		builder.append(", depBankAccount=");
		builder.append(depBankAccount);
		builder.append(", virtualInnerUserId=");
		builder.append(virtualInnerUserId);
		builder.append(", depBankMerId=");
		builder.append(depBankMerId);
		builder.append("]");
		return builder.toString();
	}
	
	

	
}
